在這個章節,我們即將進入 Web 自動化測試的領域。前面提到的許多基礎概念可能讓人感到有些複枯燥乏味,大家別被嚇跑了呀!從這一節開始,我們將實際操作,體驗 Web 自動化的魅力。當你看到 UI 自動化測試順利執行時,相信會感到非常有成就感。那麼,讓我們繼續往下看吧!
雖然剛剛說要動手來體驗一下 UI 自動化的魅力,但是不免俗的還是有必要補充一些基礎概念。選擇一款工具前,我們需要了解其背後的原理,這樣才能知其然,也知其所以然。
Playwright 是由 Microsoft 開發的一款現代化開源自動化測試工具,其目的在提供穩定且誇平台誇瀏覽器的端對端測試能力,它支援多種瀏覽器,包括 Chromium(如 Google Chrome 和 Microsoft Edge)、WebKit(如 Safari)和 Firefox,並且可以在 Windows、macOS 和 Linux 上執行測試。除了支援 JavaScript/TypeScript 之外,Playwright 也支援 Python、C# 和 Java,不過由於我們是這個系列是 Robot Framework 的全應用,因此這邊也是來跟大家分享該如何透過 Robot Framework 搭配 Playwright 執行測試吧!
Selenium 是一個經典的網頁自動化測試工具,在 Playwright 發表之前,如果要撰寫網頁的自動化測試,會找到一堆 Selenium 的文章,就連 Playwright 誕生這麼多年至今,網路上仍然會有那種為什麼我們應該棄用 Playwright 回歸 Selenium 的文章,當然兩者之間各有優勢和適用場景,以下是透過表格比較 Playwright 和 Selenium 的一些關鍵特點:
工具/功能 | Playwright | Selenium |
---|---|---|
支援的瀏覽器 | 幾乎所有主流瀏覽器 | 幾乎所有主流瀏覽器 |
自動等待 | 是,內建智能等待機制 | 否,需要手動編寫顯式等待或隱式等待 |
瀏覽器引擎 | 提供原生支援,直接控制瀏覽器,走 WebSocket | 透過 WebDriver 通訊協定間接控制瀏覽器,除了需要維護 WebDriver 外,http 的溝通方式相較 WebSocket 慢 |
網絡攔截與模擬 | 是,支援攔截和模擬 | 有限,需使用外部工具或額外配置 |
功能豐富程度 | 提供多種操作,甚至是 Alert 監聽及文件上傳下載 | 提供較基礎的功能 |
測試隔離 | 有 | 無 |
根據上表可以看出,Playwright 在許多方面已經超越了 Selenium,這也是它逐漸成為科技公司新寵的原因。隨著時間的推移,Playwright 的社群預計會更加活躍。透過下圖的 npm 下載量統計,我們可以發現,近幾年來 Playwright 的下載量已經超越了 Selenium。這顯示 Web 自動化測試工具的必學清單正在悄然發生變化。雖然目前仍有許多公司在使用 Selenium,但相信未來使用 Playwright 的用戶會越來越多。
有趣的是,從 npm 的下載量統計中可以看到,每年都有一段時間下載量出現下滑,這個時間點通常是聖誕節假期,許多公司都開始放假啦!
下圖中,我們可以看到 Playwright 和 Selenium 的比較,很明顯可以發現 Selenium 的操作步驟比 Playwright 還多。這是因為兩者與瀏覽器互動的方式不同。
在前面的比較中我們提到,Playwright 不需要維護 WebDriver,這也是它的一大優勢。
不管最終選擇哪套工具,目的都是一樣的,就是透過技術的手段來確保品質,因此最終選擇哪種工具,只要深思後認為值得投入都是沒問題的,畢竟沒有最好的工具,只有最適合的。
在自動化測試的領域,選擇合適的工具至關重要。Playwright 以其出色的性能、跨平台支持和豐富的功能,正在迅速成為新一代自動化測試的首選工具。雖然 Selenium 仍然是一個強大的選擇,但隨著技術的進步和需求的變化,越來越多的開發者和企業開始轉向 Playwright。無論是對於初學者還是有經驗的測試工程師,掌握這款工具都將帶來更多的機會和挑戰。希望透過這一章節的介紹,能讓你對 Playwright 有更深入的了解,並在未來的自動化測試中得心應手。